# [钛妹]: 基础不牢谈何AI？今天钛妹又学习了Python的**kwargs，欢迎大神们指正错误！

# [钛妹]: 钛哥钛哥，上次你给我讲了 *args，我感觉对参数传递有点感觉了，但是又来了个 **kwargs，这又是啥呀？两个星号，感觉更高级了！
def describe_person(**kwargs):
    # [钛哥]:  哈哈，钛妹好学！**kwargs  确实更灵活一些，它是用来接收**关键字参数**的。你想想，我们平时说话，是不是经常带关键词？
    print("个人介绍：")
    # [钛妹]: 关键字参数？嗯... 好像Key-Value 键值对那种感觉？
    if kwargs:
        # [钛哥]:  真聪明！**kwargs  就是把接收到的**关键字参数**打包成一个**字典 (dict)**， 键 (Key) 就是参数的名字，值 (Value) 就是参数的值。
        for key, value in kwargs.items():
            # [钛妹]: 字典我熟！可以遍历 Key 和 Value，那我可以把这些信息都打印出来，做个自我介绍！
            print(f"- {key}: {value}")
    else:
        # [钛哥]:  没错！你看，这个 `describe_person` 函数，用 **kwargs  接收参数，然后遍历字典，把每个 Key-Value 对打印出来。如果没传任何关键字参数，它就打印一个提示。
        print("- 暂无详细信息")

describe_person(name="钛妹", age=18, city="钛星")
# [钛哥]:  来，我们调用一下 `describe_person`， 传一些带名字的参数进去，比如 name="钛妹", age=18, city="钛星"。运行看看效果？
# 运行结果：
# 个人介绍：
# - name: 钛妹
# - age: 18
# - city: 钛星

describe_person()
# [钛妹]:  哇！真的可以把名字和值都打印出来！好神奇！那如果我不传任何参数呢？
# [钛哥]:  不传参数也没问题！如果 **kwargs  没有接收到任何关键字参数，那 `kwargs`  就是一个空字典。再运行一下试试？
# 运行结果：
# 个人介绍：
# - 暂无详细信息

# [钛妹]:  嗯嗯，这次就打印了 "暂无详细信息" ， 我明白了！**kwargs  太棒了，可以传递更丰富的信息，函数也更强大了！
# [钛哥]:  是啊！总结一下，**kwargs  用来接收**不定数量**的**关键字参数**，并把它们放到一个**字典**里。这样你就可以在函数内部，通过字典的 Key 来访问对应的值啦！

# [钛妹]: 好啦，这期内容到此结束，你是不是感觉又进步了一点点？点赞关注不迷路！
print("好啦，这期内容到此结束，你是不是感觉又进步了一点点？点赞关注不迷路！")